# 导入同文件夹下的utils.py文件下的所有数据和方法
# -- 当前文件夹下可以运行 -- 用于测试
# from utils import *
# -- app.py文件夹下可以运行
from .utils import *

# 获取统计部分的数据
def getIndexData():
    # 电影总个数
    maxMovieLen = len(df.values) # 146
    # 豆瓣最高评分
    maxRate = df['rate'].max() # 9.7
    # 出场最多的演员
    castsList = typeList1('casts')
    maxCasts = max(castsList, key=castsList.count) # 张国荣
    # 制片国家最多数
    countryList = typeList2('country')
    maxCountry = max(countryList, key=countryList.count) # 美国
    # 电影种类数
    typesList = typeList1('types')
        #去重，在计算总个数
    typesLen = len(set(typesList)) # 26
    # 电影语言最多数
    langList = typeList2('lang')
    maxLangLen = max(langList, key=langList.count) # 英语

    # 返回所有数据 -- from .utils import *
    return maxMovieLen, maxRate, maxCasts, maxCountry, typesLen, maxLangLen

# 获取饼状图数据
def getTypesEcharData():
    # 电影种类数组
    typesList = typeList1('types')
    typeObj = {}
    # 词频统计
    for i in typesList:
        # typeObj.get(i,-1) 获取字典中键为 i 的值。如果字典中不存在键为 i，则返回 -1
        # 如果字典中不存在键为 i，即该值为 -1，则记当前键的值为1
        if typeObj.get(i,-1) == -1:
            typeObj[i] = 1
        # 否则，当前键的值累加
        else:
            typeObj[i] = typeObj[i] + 1
    # 饼状图示例代码中的data数据是数组嵌套字典[{name:'', value:''},{name:'', value:''},……]
    typeEcharData = []
    # typeObj.items() 返回一个包含字典所有键值对的视图对象。这个视图对象可以用于迭代字典的键值对。
    for key,value in typeObj.items():
        typeEcharData.append({
            'name': key,
            'value': value
        })
    return typeEcharData

# 获取折线图数据
def getRateEcharData():
    # 处理数据 -- df中的rate数据为字符串，要转换成浮点型数据
    rateList = df['rate'].map(lambda x: float(x)).values
    # 对数据进行排序
    rateList.sort()
    # 数据统计
    rateObj = {}
    for i in rateList:
        # rateObj.get(i,-1) 获取字典中键为 i 的值。如果字典中不存在键为 i，则返回 -1
        # 如果字典中不存在键为 i，即该值为 -1，则记当前键的值为1
        if rateObj.get(i,-1) == -1:
            rateObj[i] = 1
        # 否则，当前键的值累加
        else:
            rateObj[i] = rateObj[i] + 1
    # 返回x轴（键：评分）和y轴（值：该评分总数）
    return list(rateObj.keys()), list(rateObj.values())

# 获取表格数据
def getTableData():
    tableData = df.values
    # print(tableData)
    for i, item in enumerate(tableData):
        # i 表示下标
        # item 表示每一行
        # 将imgList列的数据按逗号分隔，返回数组
        item[17] = item[17].split(sep=' , ')
    # print("//////////////////////////////////////////////")
    # print(tableData)
    return tableData

    # df['imgList'] = df['imgList'].map(lambda x: x.split(' , '))
    # return df.values
    # print(df['imgList'])
    # print(df['imgList'][0].split(' , '))

# 获取预告片的url -- 按电影名称获取
def getMovieUrl(title):
    tableData = df[df['title'] == title].values[0]
    return tableData[-1]

# test -- from utils import *
# getIndexData()
# getTableData()